/*******************************************************************************
    Copyright (c) 2011 Yahoo! Inc. All rights reserved.

    Licensed under the Apache License, Version 2.0 (the "License");
    you may not use this file except in compliance with the License.
    You may obtain a copy of the License at

    http://www.apache.org/licenses/LICENSE-2.0

    Unless required by applicable law or agreed to in writing, software
    distributed under the License is distributed on an "AS IS" BASIS,
    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    See the License for the specific language governing permissions and
    limitations under the License. See accompanying LICENSE file.

    The Initial Developer of the Original Code is Shravan Narayanamurthy.
******************************************************************************/
// Generated by the protocol buffer compiler.  DO NOT EDIT!

#ifndef PROTOBUF_document_2eproto__INCLUDED
#define PROTOBUF_document_2eproto__INCLUDED

#include <string>

#include <google/protobuf/stubs/common.h>

#if GOOGLE_PROTOBUF_VERSION < 2002000
#error This file was generated by a newer version of protoc which is
#error incompatible with your Protocol Buffer headers.  Please update
#error your headers.
#endif
#if 2002000 < GOOGLE_PROTOBUF_MIN_PROTOC_VERSION
#error This file was generated by an older version of protoc which is
#error incompatible with your Protocol Buffer headers.  Please
#error regenerate this file with a newer version of protoc.
#endif

#include <google/protobuf/generated_message_util.h>
#include <google/protobuf/repeated_field.h>
#include <google/protobuf/extension_set.h>
#include <google/protobuf/generated_message_reflection.h>

namespace LDA {

// Internal implementation detail -- do not call these.
void  protobuf_AddDesc_document_2eproto();
void protobuf_AssignDesc_document_2eproto();
void protobuf_ShutdownFile_document_2eproto();

class unigram_document;
class unigram_counts;
class word_ind_pair;
class header;
class parameters;

// ===================================================================

class unigram_document : public ::google::protobuf::Message {
 public:
  unigram_document();
  virtual ~unigram_document();
  
  unigram_document(const unigram_document& from);
  
  inline unigram_document& operator=(const unigram_document& from) {
    CopyFrom(from);
    return *this;
  }
  
  inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const {
    return _unknown_fields_;
  }
  
  inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
    return &_unknown_fields_;
  }
  
  static const ::google::protobuf::Descriptor* descriptor();
  static const unigram_document& default_instance();
  void Swap(unigram_document* other);
  
  // implements Message ----------------------------------------------
  
  unigram_document* New() const;
  void CopyFrom(const ::google::protobuf::Message& from);
  void MergeFrom(const ::google::protobuf::Message& from);
  void CopyFrom(const unigram_document& from);
  void MergeFrom(const unigram_document& from);
  void Clear();
  bool IsInitialized() const;
  
  int ByteSize() const;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input);
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const;
  ::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output) const;
  int GetCachedSize() const { return _cached_size_; }
  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const { _cached_size_ = size; }
  public:
  
  ::google::protobuf::Metadata GetMetadata() const;
  
  // nested types ----------------------------------------------------
  
  // accessors -------------------------------------------------------
  
  // optional string docID = 1;
  inline bool has_docid() const;
  inline void clear_docid();
  static const int kDocIDFieldNumber = 1;
  inline const ::std::string& docid() const;
  inline void set_docid(const ::std::string& value);
  inline void set_docid(const char* value);
  inline void set_docid(const char* value, size_t size);
  inline ::std::string* mutable_docid();
  
  // optional string url = 2;
  inline bool has_url() const;
  inline void clear_url();
  static const int kUrlFieldNumber = 2;
  inline const ::std::string& url() const;
  inline void set_url(const ::std::string& value);
  inline void set_url(const char* value);
  inline void set_url(const char* value, size_t size);
  inline ::std::string* mutable_url();
  
  // repeated uint32 body = 3 [packed = true];
  inline int body_size() const;
  inline void clear_body();
  static const int kBodyFieldNumber = 3;
  inline const ::google::protobuf::RepeatedField< ::google::protobuf::uint32 >& body() const
      ;
  inline ::google::protobuf::RepeatedField< ::google::protobuf::uint32 >* mutable_body();
  inline ::google::protobuf::uint32 body(int index) const;
  inline void set_body(int index, ::google::protobuf::uint32 value);
  inline void add_body(::google::protobuf::uint32 value);
  
  // repeated uint32 topic_assignment = 4 [packed = true];
  inline int topic_assignment_size() const;
  inline void clear_topic_assignment();
  static const int kTopicAssignmentFieldNumber = 4;
  inline const ::google::protobuf::RepeatedField< ::google::protobuf::uint32 >& topic_assignment() const
      ;
  inline ::google::protobuf::RepeatedField< ::google::protobuf::uint32 >* mutable_topic_assignment();
  inline ::google::protobuf::uint32 topic_assignment(int index) const;
  inline void set_topic_assignment(int index, ::google::protobuf::uint32 value);
  inline void add_topic_assignment(::google::protobuf::uint32 value);
  
  // repeated uint32 topic_counts = 5 [packed = true];
  inline int topic_counts_size() const;
  inline void clear_topic_counts();
  static const int kTopicCountsFieldNumber = 5;
  inline const ::google::protobuf::RepeatedField< ::google::protobuf::uint32 >& topic_counts() const
      ;
  inline ::google::protobuf::RepeatedField< ::google::protobuf::uint32 >* mutable_topic_counts();
  inline ::google::protobuf::uint32 topic_counts(int index) const;
  inline void set_topic_counts(int index, ::google::protobuf::uint32 value);
  inline void add_topic_counts(::google::protobuf::uint32 value);
  
  // repeated uint64 cnt_topics = 6 [packed = true];
  inline int cnt_topics_size() const;
  inline void clear_cnt_topics();
  static const int kCntTopicsFieldNumber = 6;
  inline const ::google::protobuf::RepeatedField< ::google::protobuf::uint64 >& cnt_topics() const
      ;
  inline ::google::protobuf::RepeatedField< ::google::protobuf::uint64 >* mutable_cnt_topics();
  inline ::google::protobuf::uint64 cnt_topics(int index) const;
  inline void set_cnt_topics(int index, ::google::protobuf::uint64 value);
  inline void add_cnt_topics(::google::protobuf::uint64 value);
  
  // repeated float topic_distribution = 7 [packed = true];
  inline int topic_distribution_size() const;
  inline void clear_topic_distribution();
  static const int kTopicDistributionFieldNumber = 7;
  inline const ::google::protobuf::RepeatedField< float >& topic_distribution() const
      ;
  inline ::google::protobuf::RepeatedField< float >* mutable_topic_distribution();
  inline float topic_distribution(int index) const;
  inline void set_topic_distribution(int index, float value);
  inline void add_topic_distribution(float value);
  
 private:
  ::google::protobuf::UnknownFieldSet _unknown_fields_;
  mutable int _cached_size_;
  
  ::std::string* docid_;
  static const ::std::string _default_docid_;
  ::std::string* url_;
  static const ::std::string _default_url_;
  ::google::protobuf::RepeatedField< ::google::protobuf::uint32 > body_;
  mutable int _body_cached_byte_size_;
  ::google::protobuf::RepeatedField< ::google::protobuf::uint32 > topic_assignment_;
  mutable int _topic_assignment_cached_byte_size_;
  ::google::protobuf::RepeatedField< ::google::protobuf::uint32 > topic_counts_;
  mutable int _topic_counts_cached_byte_size_;
  ::google::protobuf::RepeatedField< ::google::protobuf::uint64 > cnt_topics_;
  mutable int _cnt_topics_cached_byte_size_;
  ::google::protobuf::RepeatedField< float > topic_distribution_;
  mutable int _topic_distribution_cached_byte_size_;
  friend void  protobuf_AddDesc_document_2eproto();
  friend void protobuf_AssignDesc_document_2eproto();
  friend void protobuf_ShutdownFile_document_2eproto();
  
  ::google::protobuf::uint32 _has_bits_[(7 + 31) / 32];
  
  // WHY DOES & HAVE LOWER PRECEDENCE THAN != !?
  inline bool _has_bit(int index) const {
    return (_has_bits_[index / 32] & (1u << (index % 32))) != 0;
  }
  inline void _set_bit(int index) {
    _has_bits_[index / 32] |= (1u << (index % 32));
  }
  inline void _clear_bit(int index) {
    _has_bits_[index / 32] &= ~(1u << (index % 32));
  }
  
  void InitAsDefaultInstance();
  static unigram_document* default_instance_;
};
// -------------------------------------------------------------------

class unigram_counts : public ::google::protobuf::Message {
 public:
  unigram_counts();
  virtual ~unigram_counts();
  
  unigram_counts(const unigram_counts& from);
  
  inline unigram_counts& operator=(const unigram_counts& from) {
    CopyFrom(from);
    return *this;
  }
  
  inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const {
    return _unknown_fields_;
  }
  
  inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
    return &_unknown_fields_;
  }
  
  static const ::google::protobuf::Descriptor* descriptor();
  static const unigram_counts& default_instance();
  void Swap(unigram_counts* other);
  
  // implements Message ----------------------------------------------
  
  unigram_counts* New() const;
  void CopyFrom(const ::google::protobuf::Message& from);
  void MergeFrom(const ::google::protobuf::Message& from);
  void CopyFrom(const unigram_counts& from);
  void MergeFrom(const unigram_counts& from);
  void Clear();
  bool IsInitialized() const;
  
  int ByteSize() const;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input);
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const;
  ::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output) const;
  int GetCachedSize() const { return _cached_size_; }
  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const { _cached_size_ = size; }
  public:
  
  ::google::protobuf::Metadata GetMetadata() const;
  
  // nested types ----------------------------------------------------
  
  // accessors -------------------------------------------------------
  
  // repeated uint64 counts = 1 [packed = true];
  inline int counts_size() const;
  inline void clear_counts();
  static const int kCountsFieldNumber = 1;
  inline const ::google::protobuf::RepeatedField< ::google::protobuf::uint64 >& counts() const
      ;
  inline ::google::protobuf::RepeatedField< ::google::protobuf::uint64 >* mutable_counts();
  inline ::google::protobuf::uint64 counts(int index) const;
  inline void set_counts(int index, ::google::protobuf::uint64 value);
  inline void add_counts(::google::protobuf::uint64 value);
  
  // repeated uint32 tokens_per_topic = 2 [packed = true];
  inline int tokens_per_topic_size() const;
  inline void clear_tokens_per_topic();
  static const int kTokensPerTopicFieldNumber = 2;
  inline const ::google::protobuf::RepeatedField< ::google::protobuf::uint32 >& tokens_per_topic() const
      ;
  inline ::google::protobuf::RepeatedField< ::google::protobuf::uint32 >* mutable_tokens_per_topic();
  inline ::google::protobuf::uint32 tokens_per_topic(int index) const;
  inline void set_tokens_per_topic(int index, ::google::protobuf::uint32 value);
  inline void add_tokens_per_topic(::google::protobuf::uint32 value);
  
 private:
  ::google::protobuf::UnknownFieldSet _unknown_fields_;
  mutable int _cached_size_;
  
  ::google::protobuf::RepeatedField< ::google::protobuf::uint64 > counts_;
  mutable int _counts_cached_byte_size_;
  ::google::protobuf::RepeatedField< ::google::protobuf::uint32 > tokens_per_topic_;
  mutable int _tokens_per_topic_cached_byte_size_;
  friend void  protobuf_AddDesc_document_2eproto();
  friend void protobuf_AssignDesc_document_2eproto();
  friend void protobuf_ShutdownFile_document_2eproto();
  
  ::google::protobuf::uint32 _has_bits_[(2 + 31) / 32];
  
  // WHY DOES & HAVE LOWER PRECEDENCE THAN != !?
  inline bool _has_bit(int index) const {
    return (_has_bits_[index / 32] & (1u << (index % 32))) != 0;
  }
  inline void _set_bit(int index) {
    _has_bits_[index / 32] |= (1u << (index % 32));
  }
  inline void _clear_bit(int index) {
    _has_bits_[index / 32] &= ~(1u << (index % 32));
  }
  
  void InitAsDefaultInstance();
  static unigram_counts* default_instance_;
};
// -------------------------------------------------------------------

class word_ind_pair : public ::google::protobuf::Message {
 public:
  word_ind_pair();
  virtual ~word_ind_pair();
  
  word_ind_pair(const word_ind_pair& from);
  
  inline word_ind_pair& operator=(const word_ind_pair& from) {
    CopyFrom(from);
    return *this;
  }
  
  inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const {
    return _unknown_fields_;
  }
  
  inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
    return &_unknown_fields_;
  }
  
  static const ::google::protobuf::Descriptor* descriptor();
  static const word_ind_pair& default_instance();
  void Swap(word_ind_pair* other);
  
  // implements Message ----------------------------------------------
  
  word_ind_pair* New() const;
  void CopyFrom(const ::google::protobuf::Message& from);
  void MergeFrom(const ::google::protobuf::Message& from);
  void CopyFrom(const word_ind_pair& from);
  void MergeFrom(const word_ind_pair& from);
  void Clear();
  bool IsInitialized() const;
  
  int ByteSize() const;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input);
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const;
  ::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output) const;
  int GetCachedSize() const { return _cached_size_; }
  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const { _cached_size_ = size; }
  public:
  
  ::google::protobuf::Metadata GetMetadata() const;
  
  // nested types ----------------------------------------------------
  
  // accessors -------------------------------------------------------
  
  // repeated string word = 1;
  inline int word_size() const;
  inline void clear_word();
  static const int kWordFieldNumber = 1;
  inline const ::google::protobuf::RepeatedPtrField< ::std::string>& word() const;
  inline ::google::protobuf::RepeatedPtrField< ::std::string>* mutable_word();
  inline const ::std::string& word(int index) const;
  inline ::std::string* mutable_word(int index);
  inline void set_word(int index, const ::std::string& value);
  inline void set_word(int index, const char* value);
  inline void set_word(int index, const char* value, size_t size);
  inline ::std::string* add_word();
  inline void add_word(const ::std::string& value);
  inline void add_word(const char* value);
  inline void add_word(const char* value, size_t size);
  
  // repeated uint32 index = 2 [packed = true];
  inline int index_size() const;
  inline void clear_index();
  static const int kIndexFieldNumber = 2;
  inline const ::google::protobuf::RepeatedField< ::google::protobuf::uint32 >& index() const
      ;
  inline ::google::protobuf::RepeatedField< ::google::protobuf::uint32 >* mutable_index();
  inline ::google::protobuf::uint32 index(int index) const;
  inline void set_index(int index, ::google::protobuf::uint32 value);
  inline void add_index(::google::protobuf::uint32 value);
  
  // repeated uint32 frequency = 3 [packed = true];
  inline int frequency_size() const;
  inline void clear_frequency();
  static const int kFrequencyFieldNumber = 3;
  inline const ::google::protobuf::RepeatedField< ::google::protobuf::uint32 >& frequency() const
      ;
  inline ::google::protobuf::RepeatedField< ::google::protobuf::uint32 >* mutable_frequency();
  inline ::google::protobuf::uint32 frequency(int index) const;
  inline void set_frequency(int index, ::google::protobuf::uint32 value);
  inline void add_frequency(::google::protobuf::uint32 value);
  
 private:
  ::google::protobuf::UnknownFieldSet _unknown_fields_;
  mutable int _cached_size_;
  
  ::google::protobuf::RepeatedPtrField< ::std::string> word_;
  ::google::protobuf::RepeatedField< ::google::protobuf::uint32 > index_;
  mutable int _index_cached_byte_size_;
  ::google::protobuf::RepeatedField< ::google::protobuf::uint32 > frequency_;
  mutable int _frequency_cached_byte_size_;
  friend void  protobuf_AddDesc_document_2eproto();
  friend void protobuf_AssignDesc_document_2eproto();
  friend void protobuf_ShutdownFile_document_2eproto();
  
  ::google::protobuf::uint32 _has_bits_[(3 + 31) / 32];
  
  // WHY DOES & HAVE LOWER PRECEDENCE THAN != !?
  inline bool _has_bit(int index) const {
    return (_has_bits_[index / 32] & (1u << (index % 32))) != 0;
  }
  inline void _set_bit(int index) {
    _has_bits_[index / 32] |= (1u << (index % 32));
  }
  inline void _clear_bit(int index) {
    _has_bits_[index / 32] &= ~(1u << (index % 32));
  }
  
  void InitAsDefaultInstance();
  static word_ind_pair* default_instance_;
};
// -------------------------------------------------------------------

class header : public ::google::protobuf::Message {
 public:
  header();
  virtual ~header();
  
  header(const header& from);
  
  inline header& operator=(const header& from) {
    CopyFrom(from);
    return *this;
  }
  
  inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const {
    return _unknown_fields_;
  }
  
  inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
    return &_unknown_fields_;
  }
  
  static const ::google::protobuf::Descriptor* descriptor();
  static const header& default_instance();
  void Swap(header* other);
  
  // implements Message ----------------------------------------------
  
  header* New() const;
  void CopyFrom(const ::google::protobuf::Message& from);
  void MergeFrom(const ::google::protobuf::Message& from);
  void CopyFrom(const header& from);
  void MergeFrom(const header& from);
  void Clear();
  bool IsInitialized() const;
  
  int ByteSize() const;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input);
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const;
  ::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output) const;
  int GetCachedSize() const { return _cached_size_; }
  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const { _cached_size_ = size; }
  public:
  
  ::google::protobuf::Metadata GetMetadata() const;
  
  // nested types ----------------------------------------------------
  
  // accessors -------------------------------------------------------
  
  // required double version = 1;
  inline bool has_version() const;
  inline void clear_version();
  static const int kVersionFieldNumber = 1;
  inline double version() const;
  inline void set_version(double value);
  
  // optional uint32 num_words = 2;
  inline bool has_num_words() const;
  inline void clear_num_words();
  static const int kNumWordsFieldNumber = 2;
  inline ::google::protobuf::uint32 num_words() const;
  inline void set_num_words(::google::protobuf::uint32 value);
  
  // optional uint32 num_topics = 3;
  inline bool has_num_topics() const;
  inline void clear_num_topics();
  static const int kNumTopicsFieldNumber = 3;
  inline ::google::protobuf::uint32 num_topics() const;
  inline void set_num_topics(::google::protobuf::uint32 value);
  
 private:
  ::google::protobuf::UnknownFieldSet _unknown_fields_;
  mutable int _cached_size_;
  
  double version_;
  ::google::protobuf::uint32 num_words_;
  ::google::protobuf::uint32 num_topics_;
  friend void  protobuf_AddDesc_document_2eproto();
  friend void protobuf_AssignDesc_document_2eproto();
  friend void protobuf_ShutdownFile_document_2eproto();
  
  ::google::protobuf::uint32 _has_bits_[(3 + 31) / 32];
  
  // WHY DOES & HAVE LOWER PRECEDENCE THAN != !?
  inline bool _has_bit(int index) const {
    return (_has_bits_[index / 32] & (1u << (index % 32))) != 0;
  }
  inline void _set_bit(int index) {
    _has_bits_[index / 32] |= (1u << (index % 32));
  }
  inline void _clear_bit(int index) {
    _has_bits_[index / 32] &= ~(1u << (index % 32));
  }
  
  void InitAsDefaultInstance();
  static header* default_instance_;
};
// -------------------------------------------------------------------

class parameters : public ::google::protobuf::Message {
 public:
  parameters();
  virtual ~parameters();
  
  parameters(const parameters& from);
  
  inline parameters& operator=(const parameters& from) {
    CopyFrom(from);
    return *this;
  }
  
  inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const {
    return _unknown_fields_;
  }
  
  inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
    return &_unknown_fields_;
  }
  
  static const ::google::protobuf::Descriptor* descriptor();
  static const parameters& default_instance();
  void Swap(parameters* other);
  
  // implements Message ----------------------------------------------
  
  parameters* New() const;
  void CopyFrom(const ::google::protobuf::Message& from);
  void MergeFrom(const ::google::protobuf::Message& from);
  void CopyFrom(const parameters& from);
  void MergeFrom(const parameters& from);
  void Clear();
  bool IsInitialized() const;
  
  int ByteSize() const;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input);
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const;
  ::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output) const;
  int GetCachedSize() const { return _cached_size_; }
  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const { _cached_size_ = size; }
  public:
  
  ::google::protobuf::Metadata GetMetadata() const;
  
  // nested types ----------------------------------------------------
  
  // accessors -------------------------------------------------------
  
  // optional double alphasum = 1;
  inline bool has_alphasum() const;
  inline void clear_alphasum();
  static const int kAlphasumFieldNumber = 1;
  inline double alphasum() const;
  inline void set_alphasum(double value);
  
  // repeated double alphas = 2 [packed = true];
  inline int alphas_size() const;
  inline void clear_alphas();
  static const int kAlphasFieldNumber = 2;
  inline const ::google::protobuf::RepeatedField< double >& alphas() const
      ;
  inline ::google::protobuf::RepeatedField< double >* mutable_alphas();
  inline double alphas(int index) const;
  inline void set_alphas(int index, double value);
  inline void add_alphas(double value);
  
 private:
  ::google::protobuf::UnknownFieldSet _unknown_fields_;
  mutable int _cached_size_;
  
  double alphasum_;
  ::google::protobuf::RepeatedField< double > alphas_;
  mutable int _alphas_cached_byte_size_;
  friend void  protobuf_AddDesc_document_2eproto();
  friend void protobuf_AssignDesc_document_2eproto();
  friend void protobuf_ShutdownFile_document_2eproto();
  
  ::google::protobuf::uint32 _has_bits_[(2 + 31) / 32];
  
  // WHY DOES & HAVE LOWER PRECEDENCE THAN != !?
  inline bool _has_bit(int index) const {
    return (_has_bits_[index / 32] & (1u << (index % 32))) != 0;
  }
  inline void _set_bit(int index) {
    _has_bits_[index / 32] |= (1u << (index % 32));
  }
  inline void _clear_bit(int index) {
    _has_bits_[index / 32] &= ~(1u << (index % 32));
  }
  
  void InitAsDefaultInstance();
  static parameters* default_instance_;
};
// ===================================================================


// ===================================================================


// ===================================================================

// unigram_document

// optional string docID = 1;
inline bool unigram_document::has_docid() const {
  return _has_bit(0);
}
inline void unigram_document::clear_docid() {
  if (docid_ != &_default_docid_) {
    docid_->clear();
  }
  _clear_bit(0);
}
inline const ::std::string& unigram_document::docid() const {
  return *docid_;
}
inline void unigram_document::set_docid(const ::std::string& value) {
  _set_bit(0);
  if (docid_ == &_default_docid_) {
    docid_ = new ::std::string;
  }
  docid_->assign(value);
}
inline void unigram_document::set_docid(const char* value) {
  _set_bit(0);
  if (docid_ == &_default_docid_) {
    docid_ = new ::std::string;
  }
  docid_->assign(value);
}
inline void unigram_document::set_docid(const char* value, size_t size) {
  _set_bit(0);
  if (docid_ == &_default_docid_) {
    docid_ = new ::std::string;
  }
  docid_->assign(reinterpret_cast<const char*>(value), size);
}
inline ::std::string* unigram_document::mutable_docid() {
  _set_bit(0);
  if (docid_ == &_default_docid_) {
    docid_ = new ::std::string;
  }
  return docid_;
}

// optional string url = 2;
inline bool unigram_document::has_url() const {
  return _has_bit(1);
}
inline void unigram_document::clear_url() {
  if (url_ != &_default_url_) {
    url_->clear();
  }
  _clear_bit(1);
}
inline const ::std::string& unigram_document::url() const {
  return *url_;
}
inline void unigram_document::set_url(const ::std::string& value) {
  _set_bit(1);
  if (url_ == &_default_url_) {
    url_ = new ::std::string;
  }
  url_->assign(value);
}
inline void unigram_document::set_url(const char* value) {
  _set_bit(1);
  if (url_ == &_default_url_) {
    url_ = new ::std::string;
  }
  url_->assign(value);
}
inline void unigram_document::set_url(const char* value, size_t size) {
  _set_bit(1);
  if (url_ == &_default_url_) {
    url_ = new ::std::string;
  }
  url_->assign(reinterpret_cast<const char*>(value), size);
}
inline ::std::string* unigram_document::mutable_url() {
  _set_bit(1);
  if (url_ == &_default_url_) {
    url_ = new ::std::string;
  }
  return url_;
}

// repeated uint32 body = 3 [packed = true];
inline int unigram_document::body_size() const {
  return body_.size();
}
inline void unigram_document::clear_body() {
  body_.Clear();
}
inline const ::google::protobuf::RepeatedField< ::google::protobuf::uint32 >&
unigram_document::body() const {
  return body_;
}
inline ::google::protobuf::RepeatedField< ::google::protobuf::uint32 >*
unigram_document::mutable_body() {
  return &body_;
}
inline ::google::protobuf::uint32 unigram_document::body(int index) const {
  return body_.Get(index);
}
inline void unigram_document::set_body(int index, ::google::protobuf::uint32 value) {
  body_.Set(index, value);
}
inline void unigram_document::add_body(::google::protobuf::uint32 value) {
  body_.Add(value);
}

// repeated uint32 topic_assignment = 4 [packed = true];
inline int unigram_document::topic_assignment_size() const {
  return topic_assignment_.size();
}
inline void unigram_document::clear_topic_assignment() {
  topic_assignment_.Clear();
}
inline const ::google::protobuf::RepeatedField< ::google::protobuf::uint32 >&
unigram_document::topic_assignment() const {
  return topic_assignment_;
}
inline ::google::protobuf::RepeatedField< ::google::protobuf::uint32 >*
unigram_document::mutable_topic_assignment() {
  return &topic_assignment_;
}
inline ::google::protobuf::uint32 unigram_document::topic_assignment(int index) const {
  return topic_assignment_.Get(index);
}
inline void unigram_document::set_topic_assignment(int index, ::google::protobuf::uint32 value) {
  topic_assignment_.Set(index, value);
}
inline void unigram_document::add_topic_assignment(::google::protobuf::uint32 value) {
  topic_assignment_.Add(value);
}

// repeated uint32 topic_counts = 5 [packed = true];
inline int unigram_document::topic_counts_size() const {
  return topic_counts_.size();
}
inline void unigram_document::clear_topic_counts() {
  topic_counts_.Clear();
}
inline const ::google::protobuf::RepeatedField< ::google::protobuf::uint32 >&
unigram_document::topic_counts() const {
  return topic_counts_;
}
inline ::google::protobuf::RepeatedField< ::google::protobuf::uint32 >*
unigram_document::mutable_topic_counts() {
  return &topic_counts_;
}
inline ::google::protobuf::uint32 unigram_document::topic_counts(int index) const {
  return topic_counts_.Get(index);
}
inline void unigram_document::set_topic_counts(int index, ::google::protobuf::uint32 value) {
  topic_counts_.Set(index, value);
}
inline void unigram_document::add_topic_counts(::google::protobuf::uint32 value) {
  topic_counts_.Add(value);
}

// repeated uint64 cnt_topics = 6 [packed = true];
inline int unigram_document::cnt_topics_size() const {
  return cnt_topics_.size();
}
inline void unigram_document::clear_cnt_topics() {
  cnt_topics_.Clear();
}
inline const ::google::protobuf::RepeatedField< ::google::protobuf::uint64 >&
unigram_document::cnt_topics() const {
  return cnt_topics_;
}
inline ::google::protobuf::RepeatedField< ::google::protobuf::uint64 >*
unigram_document::mutable_cnt_topics() {
  return &cnt_topics_;
}
inline ::google::protobuf::uint64 unigram_document::cnt_topics(int index) const {
  return cnt_topics_.Get(index);
}
inline void unigram_document::set_cnt_topics(int index, ::google::protobuf::uint64 value) {
  cnt_topics_.Set(index, value);
}
inline void unigram_document::add_cnt_topics(::google::protobuf::uint64 value) {
  cnt_topics_.Add(value);
}

// repeated float topic_distribution = 7 [packed = true];
inline int unigram_document::topic_distribution_size() const {
  return topic_distribution_.size();
}
inline void unigram_document::clear_topic_distribution() {
  topic_distribution_.Clear();
}
inline const ::google::protobuf::RepeatedField< float >&
unigram_document::topic_distribution() const {
  return topic_distribution_;
}
inline ::google::protobuf::RepeatedField< float >*
unigram_document::mutable_topic_distribution() {
  return &topic_distribution_;
}
inline float unigram_document::topic_distribution(int index) const {
  return topic_distribution_.Get(index);
}
inline void unigram_document::set_topic_distribution(int index, float value) {
  topic_distribution_.Set(index, value);
}
inline void unigram_document::add_topic_distribution(float value) {
  topic_distribution_.Add(value);
}

// -------------------------------------------------------------------

// unigram_counts

// repeated uint64 counts = 1 [packed = true];
inline int unigram_counts::counts_size() const {
  return counts_.size();
}
inline void unigram_counts::clear_counts() {
  counts_.Clear();
}
inline const ::google::protobuf::RepeatedField< ::google::protobuf::uint64 >&
unigram_counts::counts() const {
  return counts_;
}
inline ::google::protobuf::RepeatedField< ::google::protobuf::uint64 >*
unigram_counts::mutable_counts() {
  return &counts_;
}
inline ::google::protobuf::uint64 unigram_counts::counts(int index) const {
  return counts_.Get(index);
}
inline void unigram_counts::set_counts(int index, ::google::protobuf::uint64 value) {
  counts_.Set(index, value);
}
inline void unigram_counts::add_counts(::google::protobuf::uint64 value) {
  counts_.Add(value);
}

// repeated uint32 tokens_per_topic = 2 [packed = true];
inline int unigram_counts::tokens_per_topic_size() const {
  return tokens_per_topic_.size();
}
inline void unigram_counts::clear_tokens_per_topic() {
  tokens_per_topic_.Clear();
}
inline const ::google::protobuf::RepeatedField< ::google::protobuf::uint32 >&
unigram_counts::tokens_per_topic() const {
  return tokens_per_topic_;
}
inline ::google::protobuf::RepeatedField< ::google::protobuf::uint32 >*
unigram_counts::mutable_tokens_per_topic() {
  return &tokens_per_topic_;
}
inline ::google::protobuf::uint32 unigram_counts::tokens_per_topic(int index) const {
  return tokens_per_topic_.Get(index);
}
inline void unigram_counts::set_tokens_per_topic(int index, ::google::protobuf::uint32 value) {
  tokens_per_topic_.Set(index, value);
}
inline void unigram_counts::add_tokens_per_topic(::google::protobuf::uint32 value) {
  tokens_per_topic_.Add(value);
}

// -------------------------------------------------------------------

// word_ind_pair

// repeated string word = 1;
inline int word_ind_pair::word_size() const {
  return word_.size();
}
inline void word_ind_pair::clear_word() {
  word_.Clear();
}
inline const ::google::protobuf::RepeatedPtrField< ::std::string>&
word_ind_pair::word() const {
  return word_;
}
inline ::google::protobuf::RepeatedPtrField< ::std::string>*
word_ind_pair::mutable_word() {
  return &word_;
}
inline const ::std::string& word_ind_pair::word(int index) const {
  return word_.Get(index);
}
inline ::std::string* word_ind_pair::mutable_word(int index) {
  return word_.Mutable(index);
}
inline void word_ind_pair::set_word(int index, const ::std::string& value) {
  word_.Mutable(index)->assign(value);
}
inline void word_ind_pair::set_word(int index, const char* value) {
  word_.Mutable(index)->assign(value);
}
inline void word_ind_pair::set_word(int index, const char* value, size_t size) {
  word_.Mutable(index)->assign(
    reinterpret_cast<const char*>(value), size);
}
inline ::std::string* word_ind_pair::add_word() {
  return word_.Add();
}
inline void word_ind_pair::add_word(const ::std::string& value) {
  word_.Add()->assign(value);
}
inline void word_ind_pair::add_word(const char* value) {
  word_.Add()->assign(value);
}
inline void word_ind_pair::add_word(const char* value, size_t size) {
  word_.Add()->assign(reinterpret_cast<const char*>(value), size);
}

// repeated uint32 index = 2 [packed = true];
inline int word_ind_pair::index_size() const {
  return index_.size();
}
inline void word_ind_pair::clear_index() {
  index_.Clear();
}
inline const ::google::protobuf::RepeatedField< ::google::protobuf::uint32 >&
word_ind_pair::index() const {
  return index_;
}
inline ::google::protobuf::RepeatedField< ::google::protobuf::uint32 >*
word_ind_pair::mutable_index() {
  return &index_;
}
inline ::google::protobuf::uint32 word_ind_pair::index(int index) const {
  return index_.Get(index);
}
inline void word_ind_pair::set_index(int index, ::google::protobuf::uint32 value) {
  index_.Set(index, value);
}
inline void word_ind_pair::add_index(::google::protobuf::uint32 value) {
  index_.Add(value);
}

// repeated uint32 frequency = 3 [packed = true];
inline int word_ind_pair::frequency_size() const {
  return frequency_.size();
}
inline void word_ind_pair::clear_frequency() {
  frequency_.Clear();
}
inline const ::google::protobuf::RepeatedField< ::google::protobuf::uint32 >&
word_ind_pair::frequency() const {
  return frequency_;
}
inline ::google::protobuf::RepeatedField< ::google::protobuf::uint32 >*
word_ind_pair::mutable_frequency() {
  return &frequency_;
}
inline ::google::protobuf::uint32 word_ind_pair::frequency(int index) const {
  return frequency_.Get(index);
}
inline void word_ind_pair::set_frequency(int index, ::google::protobuf::uint32 value) {
  frequency_.Set(index, value);
}
inline void word_ind_pair::add_frequency(::google::protobuf::uint32 value) {
  frequency_.Add(value);
}

// -------------------------------------------------------------------

// header

// required double version = 1;
inline bool header::has_version() const {
  return _has_bit(0);
}
inline void header::clear_version() {
  version_ = 0;
  _clear_bit(0);
}
inline double header::version() const {
  return version_;
}
inline void header::set_version(double value) {
  _set_bit(0);
  version_ = value;
}

// optional uint32 num_words = 2;
inline bool header::has_num_words() const {
  return _has_bit(1);
}
inline void header::clear_num_words() {
  num_words_ = 0u;
  _clear_bit(1);
}
inline ::google::protobuf::uint32 header::num_words() const {
  return num_words_;
}
inline void header::set_num_words(::google::protobuf::uint32 value) {
  _set_bit(1);
  num_words_ = value;
}

// optional uint32 num_topics = 3;
inline bool header::has_num_topics() const {
  return _has_bit(2);
}
inline void header::clear_num_topics() {
  num_topics_ = 0u;
  _clear_bit(2);
}
inline ::google::protobuf::uint32 header::num_topics() const {
  return num_topics_;
}
inline void header::set_num_topics(::google::protobuf::uint32 value) {
  _set_bit(2);
  num_topics_ = value;
}

// -------------------------------------------------------------------

// parameters

// optional double alphasum = 1;
inline bool parameters::has_alphasum() const {
  return _has_bit(0);
}
inline void parameters::clear_alphasum() {
  alphasum_ = 0;
  _clear_bit(0);
}
inline double parameters::alphasum() const {
  return alphasum_;
}
inline void parameters::set_alphasum(double value) {
  _set_bit(0);
  alphasum_ = value;
}

// repeated double alphas = 2 [packed = true];
inline int parameters::alphas_size() const {
  return alphas_.size();
}
inline void parameters::clear_alphas() {
  alphas_.Clear();
}
inline const ::google::protobuf::RepeatedField< double >&
parameters::alphas() const {
  return alphas_;
}
inline ::google::protobuf::RepeatedField< double >*
parameters::mutable_alphas() {
  return &alphas_;
}
inline double parameters::alphas(int index) const {
  return alphas_.Get(index);
}
inline void parameters::set_alphas(int index, double value) {
  alphas_.Set(index, value);
}
inline void parameters::add_alphas(double value) {
  alphas_.Add(value);
}


}  // namespace LDA

#ifndef SWIG
namespace google {
namespace protobuf {


}  // namespace google
}  // namespace protobuf
#endif  // SWIG

#endif  // PROTOBUF_document_2eproto__INCLUDED
